package com.innerclass_;

/**
 * @Author 小闽
 * @Date 2024/9/17 16:45
 * @PackageName: com.innerclass_
 * @ClassName: InnerClassExercise01
 * @Description: 匿名内部类实践
 * @Version 1.0
 */
public class InnerClassExercise01 {
    public static void main(String[] args) {
        /**
         * 1. 有一个铃声接口Bell,里面有个ring方法。
         * 2. 有一个手机类Cellphone，具有闹钟功能alarmclock,参数是Bell类型
         * 3. 测试手机类的闹钟功能，通过匿名内部类（对象）作为参数，打印：懒猪起床了。
         * 4. 再传入另一个匿名内部类（对象），打印：小伙伴上课了。
         */
        f1(new IL() {
            @Override
            public void show() {
                System.out.println("这是一副水墨画...");
            }
        });
        Cellphone cellphone = new Cellphone();
        cellphone.alarmclock(new Bell() {
            @Override
            public void ring() {
                System.out.println("懒猪起床了...");
            }
        });
        cellphone.alarmclock(new Bell() {
            @Override
            public void ring() {
                System.out.println("小伙伴上课了...");
            }
        });
    }
    // 静态方法
    public static void f1(IL il){
        il.show();
    }
}

interface IL{
    void show();
}

interface Bell{
    void ring();
}

class Cellphone{
    public void alarmclock(Bell bell){
        bell.ring();
    }
}